package com.cmc.cloud.cmclink.doc.vo.doinfovo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import org.hibernate.validator.constraints.Length;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static com.cmes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 进口单证do Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 * @author codegen
 */
@Data
public class DoInfoBaseVO {

        @Schema(description = "提单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25275")
    @NotNull(message = "{doinfo.blnoid.notnull}")
    private Long blnoId;
	
        @Schema(description = "D/O状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotBlank(message = "{doinfo.dostatus.notblank}")
	@Length(max = 50,message = "{doinfo.dostatus.length}")
    private String doStatus;
	        @Schema(description = "换单类型：P:Print  E:E DO", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotBlank(message = "{doinfo.dotype.notblank}")
	@Length(max = 50,message = "{doinfo.dotype.length}")
    private String doType;

        @Schema(description = "实际换单人代码（CMS Code）")
	@Length(max = 50,message = "{doinfo.doexchangercode.length}")
    private String doExchangerCode;
	
        @Schema(description = "实际换单人英文名称")
	@Length(max = 500,message = "{doinfo.doexchangernameen.length}")
    private String doExchangerNameEn;
	
        @Schema(description = "实际换单人中文名称")
	@Length(max = 500,message = "{doinfo.doexchangernamecn.length}")
    private String doExchangerNameCn;
	
        @Schema(description = "换单人统一信用代码")
	@Length(max = 50,message = "{doinfo.uniqueidentifier.length}")
    private String uniqueIdentifier;
	
        @Schema(description = "预约换单单位代码（CMS Code）")
	@Length(max = 50,message = "{doinfo.reserveddocode.length}")
    private String reservedDoCode;
	
        @Schema(description = "预约换单单位英文名称")
	@Length(max = 500,message = "{doinfo.reserveddonameen.length}")
    private String reservedDoNameEn;
	
        @Schema(description = "预约换单单位中文名称")
	@Length(max = 500,message = "{doinfo.reserveddonamecn.length}")
    private String reservedDoNameCn;
	
        @Schema(description = "预约换单单位统一信用代码")
	@Length(max = 50,message = "{doinfo.reserveddoidentifier.length}")
    private String reservedDoIdentifier;
	
        @Schema(description = "DO设置人")
	@Length(max = 64,message = "{doinfo.setdooperator.length}")
    private String setDoOperator;
	
        @Schema(description = "DO设置时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime setDoTime;
	
        @Schema(description = "取消换单人")
	@Length(max = 64,message = "{doinfo.canceldooperator.length}")
    private String cancelDoOperator;
	
        @Schema(description = "取消换单时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime cancelDoTime;
	
}
